perm filename CSCSPU.BAK[CM,DEK] blob sn#792546 filedate 1985-05-18 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00005 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	% This file puts characters into code positions \0020, \0021, and \0031
C00003 00003	cmchar "The letter I" % in code position \0020
C00004 00004	cmchar "The letter J" % in code position \0021
C00006 00005	cmchar "German letter es-zet (sharp s)" % modified for caps
C00009 ENDMK
CāŠ—;
% This file puts characters into code positions \0020, \0021, and \0031
% to take the place of dotless i, dotless j, and sharp s
% in caps-and-small-caps fonts
cmchar "The letter I"; % in code position \0020
beginchar(oct"020",max(6u#,4u#+cap_stem#),cap_height#,0);
italcorr cap_height#*slant-.25u#;
adjust_fit(cap_serif_fit#,cap_serif_fit#);
penpos1(cap_stem-tiny,0); penpos2(cap_stem-tiny,0);
pickup tiny.nib; top y1=h; bot y2=0; lft x1l=lft x2l=round(.5w-.5cap_stem);
filldraw stroke z1e..z2e; % stem
if serifs: 
 cup_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut);	% upper serif
 cup_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut);	fi % lower serif
math_fit(0,.5ic#); penlabels(1,2); endchar;
cmchar "The letter J"; % in code position \0021
beginchar(oct"021",9u#,cap_height#,0);
italcorr cap_height#*slant-cap_serif_fit#+.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
adjust_fit(0,cap_serif_fit#);
pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem'-tiny,0);
top y1=h; rt x1r=round(w-2u); x2=x1; y2=.21h;
if serifs: penpos3(vair-tiny,-90); penpos4(cap_hair-tiny,-180);
 penpos5(flare+(cap_stem-stem)-tiny,-180);
 bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=round 2.75u; z5r=z4r;
 filldraw stroke z1e..z2e&super_arc.e(2,3);	% stem and arc
 cup_serif(1,2,a,1/3,1.25cap_jut,b,1/3,.75cap_jut);	% serif
 bulb(3,4,5);	% bulb
else: filldraw stroke z1e..z2e;	% stem
 pickup fine.nib; penpos3(cap_stem'-fine,0); z3=z2;
 penpos4(flare-fine,angle(6.5u,-h)); penpos5(1.1flare-fine,-90);
 bot y4r=-o; x4r=.5[x5r,x3r]; lft x5=round.75u; bot y5r=round.06h-o;
 filldraw stroke z3e{down}
  ..tension atleast.9..z4e{left}..z5e; fi % arc and terminal
math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
cmchar "German letter es-zet (sharp s)"; % modified for caps
% Ja, I know Germans use SS in uppercase; this is an Experiment!
beginchar(oct"031",6u#+max(4.5u#,.5stem#+flare#+curve#),cap_height#,0);
italcorr cap_height#*slant-u#;
adjust_fit(serif_fit#,0);
pickup tiny.nib; penpos1(stem''-tiny,0); penpos2(stem''-tiny,0);
lft x1l=lft x2l=round(2.5u-.5stem''); bot y1=0; y2=y4=.5[x_height,y3];
penpos3(vair-fine,90); fine.top y3r=h+oo;
filldraw stroke z1e..z2e;	% stem
numeric stem_edge; stem_edge=rt x1r;
pickup fine.nib; penpos4(curve-fine,0); penpos5(vair-fine,-90);
penpos2'(stem''-fine,180); z2'=z2; x3=.5[x2,x4]; rt x4r=round(w-u);
top y5l=x_height; lft x5=round(stem_edge+u);
filldraw stroke pulled_super_arc.e(2',3)(.5superpull)
 & pulled_super_arc.e(3,4)(.5superpull)
 & pulled_super_arc.e(4,5)(.5superpull);	% upper bowl
penpos5'(vair-fine,90); z5'=z5; penpos6(curve-fine,0); penpos7(vair-fine,-90);
rt x6r=round(w-.5u); y6=.4x_height; bot y7r=-oo;
lft x8r=round(stem_edge+.5u+1); x7=.4[lft x8r,x6];
filldraw stroke pulled_super_arc.e(5',6)(.5superpull)
 & pulled_super_arc.e(6,7)(.5superpull);	% lower bowl
if serifs: penpos8(hair-fine,-180); penpos9(flare-fine,-180);
 y9-.5flare=round .07x_height; bulb(7,8,9);	% bulb
 penpos0(stem''-tiny,0); x0=x1; tiny.top y0=x_height;
 serif(0,1,a,0,-jut);	% bar
 cup_serif(1,2,b,1/3,jut,c,0,epsilon);	% serif
else: penpos8(vair-fine,-110); bot y8r=round .01h;
 x8l:=good.x x8l; y8l:=good.y(y8l+.5);
 filldraw stroke z7e{left}..z8e; fi	% terminal
penlabels(0,1,2,3,4,5,6,7,8,9); endchar;